//665 非递减数列
/*
给你一个长度为 n 的整数数组，请你判断在 最多 改变 1 个元素的情况下，该数组能否变成一个非递减数列
非递减数列： 对于数组中所有的 i (0 <= i <= n-2)，总满足 nums[i] <= nums[i + 1]。
示例：
- 输入: nums = [4,2,3]
  输出: true
  解释: 你可以通过把第一个4变成1来使得它成为一个非递减数列。
*/
class Solution
{
public:
	bool checkPossibility(vector<int> &nums)
	{
		int n = nums.size(), cnt = 0;
		for (int i = 0; i < n - 1; ++i)
		{
			int x = nums[i], y = nums[i + 1];
			if (x > y)
			{
				cnt++;
				if (cnt > 1)
				{
					return false;
				}
				if (i > 0 && y < nums[i - 1])
				{
					nums[i + 1] = x;
				}
			}
		}
		return true;
	}
};
